// pages/todolist/todolist.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // bgColor: ['#f1707d', '#f155369', '#ef5767', '#ae716e', '#cb8e85', '#cf8878', '#c86f67', '#ff9b6a', '#e26538', '#d08a8a', '#f0b735', '#ff8444', '#cb7799', '#e96d29'],
    // selectColor: ""
    todoListData: [],
    page: 0,
    pageSize: 8,
    hasMore: 1,
    flag: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.loadMore()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },
  loadMore() {
    if (this.data.hasMore == true) {
      wx.showLoading({
        title: '加载中',
      })
    }
    //如果没有更多数据，就直接返回
    if (!this.data.hasMore) {
        wx.hideLoading()
      return
    };
    wx.request({
      url: app.globalData.requestUrl + "api/todolist/index.php",
      method: "post",
      data: {
        page: ++this.data.page,
        pageSize: this.data.pageSize
      },
      header: {
        'Authorization': wx.getStorageSync("token")
      },
      success: (res) => {
        let data = res.data
        if (data.code === 0) {
          //先获取本来的数据，再通过concat把新数据拼接起来。
          let newList = this.data.todoListData.concat(data.data.todolist)
          //用于判断比较是否还有更多数据
          let flag = this.data.page * this.data.pageSize < data.data.num
          this.setData({
            todoListData: newList,
            hasMore: flag
          })
            wx.hideLoading()
        } else if (data.code === 1010) {
          wx.showModal({
            title: '请登录',
            content: '您未登录或登录状态已过期',
            showCancel: false,
            confirmText: "去登录",
            success(res) {
              if (res.confirm) {
                wx.redirectTo({
                  url: '../index/index',
                })
              }
            }
          })
        }
      },
      fail: (res) => {
          wx.hideLoading()
        wx.showModal({
          title: '提示',
          content: '服务器开小差了，请稍后重试',
          showCancel: false,
          confirmText: "我知道了"
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  switchChange(e) {
    let data = {}
    data.value = e.detail.value === true ? 1 : 0
    data.id = parseInt(e.currentTarget.dataset.id)
    wx.request({
      url: app.globalData.requestUrl + "api/todolist/finish.php",
      method: "post",
      data,
      header: {
        'Authorization': wx.getStorageSync("token")
      },
      success: (res) => {
        let resData = res.data
        if (resData.code === 0) {
          if (data.value == 1) {
            wx.showToast({
              title: '任务已完成',
              icon: 'success',
              duration: 1000
            })
          } else {
            wx.showToast({
              title: '任务未完成',
              icon: 'loading',
              duration: 1000
            })
          }
        } else if (data.code === 1010) {
          wx.showModal({
            title: '请登录',
            content: '您未登录或登录状态已过期',
            showCancel: false,
            confirmText: "去登录",
            success(res) {
              if (res.confirm) {
                wx.redirectTo({
                  url: '../index/index',
                })
              }
            }
          })
        }
      },
      fail: (res) => {
        wx.showModal({
          title: '提示',
          content: '服务器开小差了，请稍后重试',
          showCancel: false,
          confirmText: "我知道了"
        })
      }
    })
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    wx.stopPullDownRefresh();
    //把数据先设置回默认值
    this.setData({
      luggageDataList: [],
      page: 0,
      hasMore: 1,
    });
    //再重新请求数据
    this.loadMore();
    //停止，否则在手机端一直存在
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.loadMore();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})